翻訳と辞書
Words near each other
・ Acts of Supremacy
・ Acts of Supremacy (album)
・ Acts of Terror (The Twilight Zone)
・ Acts of the 88th Minnesota Legislature
・ Acts of the Apostles
・ Acts of the Apostles (genre)
・ Acts of the claimant
・ Acts of the Kings of Israel
・ Acts of the Martyrs
・ Acts of the Unspeakable
・ Acts of Thomas
・ Acts of Timothy
・ Acts of Union 1707
・ Acts of Union 1800
・ Acts of Uziah
Actor model and process calculi history
・ Actor model implementation
・ Actor model later history
・ Actor model middle history
・ Actor model theory
・ Actor modeling
・ Actor Nakamura Shikan II as Satake Shinjuro
・ Actor Rebellion of 1733
・ Actor Tour
・ Actor's and Sin
・ Actor's Workshop
・ Actor-Based Concurrent Language
・ Actor-Lab
・ Actor-manager
・ Actorexpo


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Actor model and process calculi history : ウィキペディア英語版
Actor model and process calculi history
The Actor model and process calculi share an interesting history and co-evolution.
==Early work==
The Actor model, first published in 1973,〔Carl Hewitt, Peter Bishop and Richard Steiger. A Universal Modular Actor Formalism for Artificial Intelligence IJCAI 1973.〕 is a mathematical model of concurrent computation. The Actor model treats “Actors” as the universal primitives of concurrent digital computation: in response to a message that it receives, an Actor can make local decisions, create more Actors, send more messages, and determine how to respond to the next message received.
As opposed to the previous approach based on composing sequential processes, the Actor model was developed as an inherently concurrent model. In the Actor model sequentiality was a special case that derived from concurrent computation as explained in Actor model theory.
Robin Milner's initial published work on concurrency from the same year〔Robin Milner. Processes: A Mathematical Model of Computing Agents in Logic Colloquium 1973.〕 was also notable in that it positions mathematical semantics of communicating processes as a framework to understand a variety of interaction agents including the computer's interaction with memory. The framework of modelling was based on Scott's model of domains and as such was not based on sequential processes. His work differed from the Actor model in the following ways:
* There are a fixed number of processes as opposed to the Actor model which allows the number of Actors to vary dynamically
* The only quantities that can be passed in messages are integers and strings as opposed to the Actor model which allows the addresses of Actors to be passed in messages
* The processes have a fixed topology as opposed to the Actor model which allows varying topology
* Communication is synchronous as opposed to the Actor model in which an unbounded time can elapse between sending and receiving a message.
* The semantics provided bounded nondeterminism unlike the Actor model with unbounded nondeterminism. However, with bounded nondeterminism is impossible for a server to guarantee service to its clients, ''i.e.'', a client might starve.
Milner later removed some of these restrictions in his work on the Pi calculus (see section Milner, et al. below).
The publication by Tony Hoare in 1978 of the original Communicating Sequential Processes was different from the Actor model which states:〔C.A.R. Hoare. Communicating Sequential Processes CACM. August, 1978.〕
:''This paper suggests that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method. When combined with a development of Dijkstra's guarded command, these concepts are surprisingly versatile. Their use is illustrated by sample solutions of a variety of familiar programming exercises.''
:...
:''The programs expressed in the proposed language are intended to be implementable both by a conventional machine with a single main store, and by a fixed network of processors connected by input/output channels (although very different optimizations are appropriate in the different cases). It is consequently a rather static language: The text of a program determines a fixed upper bound on the number of processes operating concurrently; there is no recursion and no facility for process-valued variables. In other respects also, the language has been stripped to the barest minimum necessary for explanation of its more novel features.''
:...
:''This paper has suggested that input, output, and concurrency should be regarded as primitives of programming, which underlie many familiar and less familiar programming concepts. However, it would be unjustified to conclude that these primitives can wholly replace the other concepts in a programming language. Where a more elaborate construction (such as a procedure or a monitor) is frequently useful, has properties which are more simply provable, and can also be implemented more efficiently than the general case, there is a strong reason for including in a programming language a special notation for that construction. The fact that the construction can be defined in terms of simpler underlying primitives is a useful guarantee that its inclusion is logically consistent with the remainder of the language.''
The 1978 version of CSP differed from the Actor model in the following respects (1981 ):
*''The concurrency primitives of CSP were input, output, guarded commands, and parallel composition'' whereas the Actor model is based on asynchronous one-way messaging.
*''The fundamental unit of execution was a sequential process'' in contrast to the Actor model in which execution was fundamentally concurrent. Sequential execution is problematical because multi-processor computers are inherently concurrent.
*''The processes had a fixed topology of communication'' whereas Actors had a dynamically changing topology of communications. Having a fixed topology is problematical because it precludes the ability to dynamically adjust to changing conditions.
*''The processes were hierarchically structured using parallel composition'' whereas Actors allowed the creation of non-hierarchical execution using futures (and Hewitt 1977 ). Hierarchical parallel composition is problematical because it precludes the ability to create a process that outlives its creator. Also message passing is the fundamental mechanism for generating parallelism in the Actor model; sending more messages generates the possibility of more parallelism.
*''Communication was synchronous'' whereas Actor communication was asynchronous. Synchronous communication is problematical because the interacting processes might be far apart.
*''Communication was between processes'' whereas in the Actor model communications are one-way to Actors. Synchronous communication between processes is problematical by requiring a process to wait on multiple processes.
*''Data structures consisted of numbers, strings, and arrays'' whereas in the Actor model data structures were Actors. Restricting data structures to numbers, strings, and arrays is problematical because it prohibits programmable data structures.
*''Messages contain numbers and strings'' whereas in the Actor model messages could include the addresses of Actors. Not allowing addresses in messages is problematical because it precludes flexibility in communication because there is no way to supply another process with the ability to communicate with an already known process.
*''The model of CSP deliberately had bounded nondeterminism'' (Hoare, Lehmann, and de Roever 1979 ) whereas the Actor model had unbounded nondeterminism. Dijkstra () had convinced Hoare that a programming language with unbounded nondeterminism could not be implemented. Consequently it was not possible to guarantee that servers implemented using CSP would provide service to multiple clients.

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Actor model and process calculi history」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.